package com.xuecheng.content.service;

import com.xuecheng.base.execption.RestErrorResponse;
import com.xuecheng.content.model.dto.BindTeachplanMediaDto;
import com.xuecheng.content.model.dto.SaveTeachplanDto;
import com.xuecheng.content.model.dto.TeachplanDto;
import com.xuecheng.content.model.po.TeachplanMedia;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * @Description 课程计划接口
 * @Author dingchunlin
 * @Date 2024/3/29 20:58
 * @Version 1.0.0
 */
public interface TeachplanService {

    /**
     * 查询课程计划树型结构
     * @param courseId
     * @return
     */
    List<TeachplanDto> getTreeNodes(Long courseId);

    /**
     * 添加或修改课程计划
     * @param teachplanDto
     */
    void saveTeachplan(SaveTeachplanDto teachplanDto);

    /**
     * 删除课程计划
     * @param planId
     * @return
     */
    void deletePlanById(Long planId);

    /**
     * 课程计划向下移动
     * @param planId
     */
    void movedown(Long planId);

    /**
     * 课程计划向上移动
     * @param planId
     */
    void moveup(Long planId);

    /**
     * 课程计划和媒资信息绑定
     * @param bindTeachplanMediaDto
     */
    TeachplanMedia associationMedia(BindTeachplanMediaDto bindTeachplanMediaDto);

    /**
     * 课程计划和媒资解除绑定
     * @param teachPlanId
     * @param mediaId
     */
    void associationMedia(Long teachPlanId, String mediaId);

    /**
     * 根据课程id获取教师
     * @param courseId
     * @return
     */
    List<TeachplanDto> findTeachplanTree(Long courseId);
}
